package algorithm.middle;

import java.sql.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空：
 * <p>
 * 矩阵中每一行选取最大的一个数，并删除它。如果一行中有多个最大的数，选择任意一个并删除。
 * 在步骤 1 删除的所有数字中找到最大的一个数字，将它添加到你的 分数 中。
 * 请你返回最后的 分数 。
 */
public class MatrixSum2679 {

    public int matrixSum(int[][] nums) {
        List<List<Integer>> out = new ArrayList<>();
        for (int[] arr : nums) {
            List<Integer> list = Arrays.stream(arr).sorted().boxed().collect(Collectors.toList());
            out.add(list);
        }
        int res = 0;
        int size = out.get(0).size();
        for (int i = 0; i < size; i++) {
            int max = 0;
            for (List<Integer> list : out) {
                max = Math.max(list.get(i), max);
            }
            res += max;
        }
        return res;
    }
}
